Measuring the throughput of transmissions over wireless local area networks

ABSTRACT

A method and system for measuring the throughput of transmissions over a wireless local area network having a station and an access point. The station can send messages to the access point during a test period, where the messages can be sent as data frames. The access point can receive messages sent from the station during the test period. For messages received by the access point, the access point can send acknowledgements to the station, where the acknowledgements can be sent as control frames. The station can receive acknowledgements from the access point for messages received by the access point. The station can determine a throughput from the station to the access point for the test period based on the acknowledgements received at the station from the access point during the test period.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.10/087,045, filed on Feb. 28, 2002 now U.S. Pat. No. 7,009,957. Thecontents of the above cited patent application is hereby incorporated byreference in its entirety.

BACKGROUND

1. Field of the Invention

The present invention generally relates to wireless local area networks.More particularly, the present invention relates to measuring thethroughput of transmissions over wireless local area networks.

2. Description of the Related Art

Computers have traditionally communicated with each other through wiredlocal area networks (“LANs”). However, with the increased demand formobile computers such as laptops, personal digital assistants, and thelike, wireless local area networks (“WLANs”) have developed as a way forcomputers to communicate with each other through transmissions over awireless medium using radio signals, infrared signals, and the like.

In order to promote interoperability of WLANs with each other and withwired LANs, the IEEE 802.11 standard was developed as an internationalstandard for WLANs. Generally, the IEEE 802.11 standard was designed topresent users with the same interface as an IEEE 802 wired LAN, whileallowing data to be transported over a wireless medium.

Although WLANs provide users with increased mobility over wired LANs,the quality of communications over a WLAN can vary for reasons that arenot present in wired LANs. For example, everything in the environmentcan behave as a reflector or attenuator of a transmitted signal. Assuch, small changes in the position of a computer in a WLAN can affectthe quality and strength of a signal sent by the computer and can affectthe throughput of signals sent over the WLAN.

In a conventional system, throughput across a WLAN is measured by acomputer in the WLAN using an echo request-reply mechanism that uses anOSI layer of layer 3 or above. However, components in a WLAN oftencannot support an OSI layer of layer 3 or above or are inconvenient oradministratively impractical to configure with an echo reply-requestmechanism. Furthermore, processing data at layer 3 or above can adddelay, and thus affect the calculated throughput.

Alternatively, a separate device that can support an OSI layer of layer3 or above can be used with a computer sending transmissions to measurethroughput across a WLAN. However, because the separate device istypically placed “behind” an access point receiving transmissions fromthe computer, the calculated throughput can include the extra pathlength between the device and access point, as well as delays and theeffects of bottlenecks at the access point. Furthermore, processing dataat layer 3 or above can add delay, and thus affect the calculatedthroughput.

SUMMARY

The present invention relates to measuring the throughput oftransmissions over a wireless local area network having a station and anaccess point. In one embodiment, the station can send messages to theaccess point during a test period, where the messages can be sent asdata frames. The access point can receive messages sent from the stationduring the test period. For messages received by the access point, theaccess point can send acknowledgements to the station, where theacknowledgements can be sent as control frames. The station can receiveacknowledgements from the access point for messages received by theaccess point. The station can determine a throughput from the station tothe access point for the test period based on the acknowledgementsreceived at the station from the access point during the test period.

In another embodiment, messages can be sent from the station to theaccess point during a test period. Messages sent from the station canthen be received at the access point during the test period. Formessages received by the access point, the access point can send ACKframes to the station. The station can receive ACK frames from theaccess point for messages received by the access point. The access pointcan send the messages received from the station back to the station. Thestation can receive the messages from the access point. The station candetermine a throughput from the station to the access point for the testperiod based on the ACK frames received by the station from the accesspoint during the test period. Furthermore, the station can determine athroughput from the access point to the station for the test periodbased on the messages that are sent from the station to the access pointand received by the station from the access point during the testperiod.

DESCRIPTION OF THE DRAWING FIGURES

The present invention can be best understood by reference to thefollowing detailed description taken in conjunction with theaccompanying drawing figures, in which like parts may be referred to bylike numerals:

FIG. 1 shows an exemplary OSI seven layer model;

FIG. 2 shows an exemplary extended service set in a wireless local areanetwork (“WLAN”);

FIG. 3 is an exemplary flow diagram illustrating various states ofstations in a WLAN;

FIG. 4 shows an exemplary sequence of frame exchanges between a stationand access point;

FIG. 5 shows an exemplary interface that can be used to set and displayparameters relating to throughput measurement;

FIG. 6 shows an exemplary flow diagram of a process that can be used tomeasure throughput in a WLAN system;

FIG. 7 shows headers that can be included in a frame; and

FIG. 8 shows another exemplary sequence of frame exchanges between astation and access point.

DETAILED DESCRIPTION

In order to provide a more thorough understanding of the presentinvention, the following description sets forth numerous specificdetails, such as specific configurations, parameters, examples, and thelike. It should be recognized, however, that such description is notintended as a limitation on the scope of the present invention, but isintended to provide a better description of the exemplary embodiments.

With reference to FIG. 1, an exemplary OSI seven layer model is shown,which represents an abstract model of a networking system divided intolayers according to their respective functionalities. In particular, theseven layers include physical layer 102 corresponding to layer 1, datalink layer 104 corresponding to layer 2, network layer 106 correspondingto layer 3, transport layer 108 corresponding to layer 4, session layer110 corresponding to layer 5, presentation layer 112 corresponding tolayer 6, and application layer 114 corresponding to layer 7. Each layerin the OSI model only interacts directly with the layer immediatelyabove or below it, and different computers and 116 can communicatedirectly with each other only at the physical layer 102. However,different computers and 116 can effectively communicate at the samelayer using common protocols. For example, in one exemplary embodiment,computer 100 can communicate with computer 116 at application layer 114by propagating a frame from application layer 114 of computer througheach layer below it until the frame reaches physical layer 102. Theframe can then be transmitted to physical layer 102 of computer 116 andpropagated through each layer above physical layer 102 until the framereaches application layer 114 of computer 116.

The IEEE 802.11 standard for wireless local area networks (“WLANs”)operates at the data link layer 104, which corresponds to layer 2 of theOSI seven layer model, as described above. Because IEEE 802.11 operatesat layer 2 of the OSI seven layer model, layers 3 and above can operateaccording to the same protocols used with IEEE 802 wired LANs.Furthermore, layers 3 and above can be unaware of the network actuallytransporting data at layers 2 and below. Accordingly, layers 3 and abovecan operate identically in the IEEE 802 wired LAN and the IEEE 802.11WLAN. Furthermore, users can be presented with the same interface,regardless of whether a wired LAN or WLAN is used.

With reference to FIG. 2, an exemplary extended service set 200, whichforms a WLAN according to the IEEE 802.11 standard, is depicted havingbasic service sets (“BSS”) 206,208, and 210. Each BSS can include anaccess point (“AP”) 202 and stations 204. A station 204 is a componentthat can be used to connect to the WLAN, which can be mobile, portable,stationary, and the like, and can be referred to as the network adapteror network interface card. For instance, a station 204 can be a laptopcomputer, a personal digital assistant, and the like. In addition, astation 204 can support station services such as authentication,deauthentication, privacy, delivery of data, and the like.

Each station 204 can communicate directly with an AP 202 through an airlink, such as by sending a radio or infrared signal between WLANtransmitters and receivers. Each AP 202 can support station services, asdescribed above, and can additionally support distribution services,such as association, disassociation, association, distribution,integration, and the like. Accordingly, an AP 202 can communicate withstations 204 within its BSS 206, 208, and 210, and with other APs 202through medium 212, called a distribution system, which forms thebackbone of the WLAN. This distribution system 212 can include bothwireless and wired connections.

With reference to FIGS. 2 and 3, each station 204 must be authenticatedto and associated with an AP 202 in order to become a part of a BSS 206,208, or 210, under the IEEE 802.11 standard. Accordingly, with referenceto FIG. 3, a station 204 begins in State 1 (300), where station 204 isunauthenticated to and unassociated with an AP 202. In State 1 (300),station 204 can only use a limited number of frame types, such as frametypes that can allow station 204 to locate and authenticate to an AP202, and the like.

If station 204 successfully authenticates 306 to an AP 202, then station204 can be elevated to State 2 (302), where station 204 is authenticatedto and unassociated with the AP 202. In State 2 (302), station 204 canuse a limited number of frame types, such as frame types that can allowstation 204 to associate with an AP 202, and the like.

If station 204 then successfully associates or reassociates 308 with AP202, then station 204 can be elevated to State 3 (304), where station204 is authenticated to and associated with AP 202. In State 3 (304),station 204 can use any frame types to communicate with AP 202 and otherstations 204 in the WLAN. If station 204 receives a disassociationnotification 310, then station 204 can be transitioned to State 2.Furthermore, if station 204 then receives deauthentication notification312, then station 204 can be transitioned to State 1. Under the IEEE802.11 standard, a station 204 can be authenticated to different APs 202simultaneously, but can only be associated with one AP 202 at any time.

With reference again to FIG. 2, once a station 204 is authenticated toand associated with an AP 202, the station 204 can communicate withanother station 204 in the WLAN. In particular, a station 204 can send amessage having a source address, a basic service set identificationaddress (“BSSID”), and a destination address, to its associated AP 202.The AP 202 can then distribute the message to the station 204 specifiedas the destination address in the message. This destination address canspecify a station 204 in the same BSS 206, 208, or 210, or in anotherBSS 206, 208, or 210 that is linked to the AP 202 through distributionsystem 212.

Although FIG. 2 depicts an extended service set 200 having three BSSs206, 208, and 210, each of which include three stations 204, it shouldbe recognized that an extended service set 200 can include any number ofBSSs 206, 208, and 210, which can include any number of stations 204.

As noted earlier, WLANs can provide users with increased mobility, incomparison to wired LANs, but the quality of communications over a WLANcan vary for reasons that are not present in wired LANs. For example,everything in the environment can behave as a reflector or attenuator ofa transmitted signal, thereby affecting RF signal interference,multipath, attenuation, and the like.

These environmental impacts, which are not typically present in wiredLANs, can contribute to the reduced reliability of transmissions overthe WLAN medium, as compared to transmissions over a wired LAN.Accordingly, the IEEE 802.11 standard includes various frame exchangeprotocols to address this decreased reliability. In particular, the IEEE802.11 MAC uses a frame exchange protocol at the data link layer 104(FIG. 1), which is designed to notify a station 204 sending a messagethat the message has been received by an intended station 204.

In particular, with reference to FIG. 4, after station 204 isauthenticated to and associated with AP 202, station 204 can send arequest to send (“RTS”) frame 400 to AP 202. After AP 202 detects thatthe wireless medium is free from other traffic that could interfere witha frame sent by station 204, AP 202 can send a clear to send (“CTS”)frame 402 to station 204. After station 204 receives CTS frame 402,station 204 can send a message 404 to AP 202. When AP 202 receives thismessage 404, AP 202 can send an acknowledgement (“ACK”) frame 406 tostation 204, indicating that AP 202 received the message 404 sent bystation 204.

If no ACK frame is received by station 204, then station 204 can retrysending message 404. In some applications, a retry limit can be set,such that station 204 stops trying to send message 404 after this limitis reached. If station 204 stops trying to send message 404 and does notreceive an ACK frame 406, then this is considered a loss.

The messages described above are sent as data frames according to theIEEE 802.11 standard. More particularly, in accordance with the currentIEEE 802.11 standard, data frames can have lengths of at least 29 bytes.In contrast, the RTS, CTS, and ACK frames are sent as control frames. Inaccordance with the current IEEE 802.11 standard, control frames havelengths of at most 20 bytes. For instance, a standard IEEE 802.11 ACKframe has a length of 14 bytes. It should be noted that these sizelimitations for data frames and control frames may change if the IEEE802.11 standard is revised.

In addition to being smaller in size than data frames, control framesare solely generated at the data link layer 104 (FIG. 1) and below. Forexample, when a message is received, an ACK frame is automaticallygenerated at and sent out from data link layer 104 (FIG. 1) at AP 202.As such, the received message does not need to be processed above datalink layer 104 (FIG. 1) in order for the ACK frame to be generated andsent.

Although the above-described frame exchange protocol includes sendingRTS and CTS frames, it should be recognized that these frames can beomitted in some applications. However, sending these frames can reducethe number of collisions between frames being sent over a WLAN.

The above-described frame exchange protocol can affect the throughput oftransmissions over a WLAN because each frame sent according to theprotocol consumes bandwidth and time. In particular, the use of theRTS/CTS frames, acknowledge frames, and retry limits can affect thethroughput. Furthermore, the size of the messages sent, the transmissionspeeds at which the messages are sent, and the fragmentation thresholdfor the messages can affect the throughput across a WLAN. Accordingly,measuring throughput can be useful in assessing the quality ofcommunications over at the WLAN at any given time. In addition,measuring throughput across a WLAN can also be useful in assessingwireless equipment performance.

As noted earlier, throughput across a WLAN can be measured by a station204 using an echo request-reply mechanism such as an ICMP echo requestor an UDP echo application, which uses an OSI layer of layer 3 or above(FIG. 1), such as network layer 106, transport layer 108, applicationlayer 114, and the like. In particular, with reference again to FIG. 2,a station 204 can send an echo request to its associated AP 202. Inresponse, the AP 202 can send an echo reply to the station 204.Throughput across the WLAN can then be calculated based on this echoreply-request mechanism. However, using this echo request-replymechanism includes various disadvantages.

For example, one disadvantage to an echo request-reply mechanism is thatthe echo reply is a data frame and not a standard IEEE 802.11 controlframe. As such, unlike an ACK frame, the echo reply is generated abovethe data link layer 104 (FIG. 1). However, the components in the WLANsupport may not support an OSI layer above the data link layer 104 (FIG.1). For instance, station 204 may not be able to support an OSI layer oflayer 3 or above. Furthermore, the AP 202 that connects station 204 tothe WLAN may not have an IP address to support activities on networklayer 106. In addition, AP 202 may be unable to run an application thatcan perform an echo reply-request. However, even if station 204 cansupport an OSI layer of layer 3 or above, processing data at layer 3 orabove can add delay, and thus affect the calculated throughput.Furthermore, configuring station 204 with an echo reply-requestmechanism can be inconvenient or administratively impractical.

Another disadvantage relates to using a separate device that can supportan OSI layer of layer 3 or above. In particular, with reference again toFIG. 2, the device can be placed “behind” AP 202, such that AP 202 ispositioned between the device and station 204. Station 204 can send anecho request to AP 202 that is also received by the device. The devicecan then send an echo reply to station 204. However, because the devicesending the echo reply is placed along a wired connection behind AP 202,the calculated throughput can include the extra path length between AP202 and the device, as well as delays and the effects of bottlenecks atAP 202. In addition, processing data at layer 3 or above can add delay,and thus affect the calculated throughput.

Accordingly, various exemplary embodiments of the present invention usethe existing infrastructure provided by the IEEE 802.11 standard tocalculate throughput across a WLAN. More particularly, in variousexemplary embodiments, throughput across a WLAN can be measured by astation 204 using existing infrastructure at an OSI layer of layer 2 orbelow.

FIG. 6 shows an exemplary process that can be used to measure throughputin a WLAN system using the system shown in FIG. 4. Generally, throughputfrom station 204 to AP 202 can be measured in bits per second (bps)according to the following equation:

${Throughput} = \frac{\left( {\#\mspace{14mu}{data}\mspace{14mu}{frames}} \right) \times \left( {{bits}\mspace{14mu}{per}\mspace{14mu}{data}\mspace{14mu}{frame}} \right)}{time}$

Accordingly, throughput can be measured by sending data framessequentially from station 204 to AP 202 over a specified period of time.If the data frames sent have a known size and the time for sending thesequence of data frames is specified, throughput can be calculated fromthe number of data frames successfully received by AP 202 during thespecified time.

With reference to FIG. 5, an exemplary interface that can be used to setparameters for throughput measurement is depicted. More particularly, auser, administrator, or the like, can specify a test period 500 and theframe size 502 of the frames to be sent sequentially during the testperiod. Furthermore, the user, administrator, or the like, can specify aretry limit 504, as described above with regard to FIG. 4, and afragmentation threshold 506 that indicates the maximum size that dataframes can be transmitted without being fragmented into smaller sizeddata frames. It should be recognized that the retry limit 504 andfragmentation threshold 506 can be omitted in some applications, such aswhen there is no retry limit or when data frames sent are of a specifiedsize that do not require fragmentation.

With reference to FIGS. 4 and 6, after the parameters for throughputmeasurement are set, then the test period can be started. Next, in step600, station 204 can send a RTS frame 400 to AP 202. After AP 202detects that the wireless medium is free from other traffic that couldinterfere with a frame sent by station 204, then in step 602, AP 202 cansend a CTS frame 402 to station 204. However, it should be recognizedthat steps 600 and 602 can be omitted in some applications. Forinstance, although sending CTS and RTS frames can reduce collisionsbetween subsequent data frames sent over a WLAN, CTS and RTS frames canbe omitted if collisions are acceptable in a particular application.

After station 204 receives CTS frame 402, then in step 604, station 204can send a data frame 404 to AP 202. With reference to FIG. 7, dataframe 404 can include an IEEE 802.11 header 700 and an IEEE 802.2 header702. IEEE 802.11 header 700 can include destination address 704, BSSID706, source address 708, and other information 710. In the presentexemplary embodiment, destination address 704 can be set to AP 202,BSSID 706 can be set to AP 202, and source address 708 can be set tostation 204. Furthermore, IEEE 802.2 header 702 can include sourceservice access point (“SAP”) 712, destination SAP 714, and otherinformation 716. In some configurations, destination SAP 714 can be setto a null SAP in order to prevent AP 202 from processing data frame 404to determine its contents. By preventing AP 202 from processing dataframe 404 in this manner, AP 202 can process other data frames andreduce bottlenecking and delays at AP 202. However, it should berecognized that preventing AP 202 from processing data frame 404 bysetting destination SAP 714 to a null SAP can be omitted in someapplications. For instance, if delays and bottlenecking at AP 202 arenot problematic, setting destination SAP 714 to a null SAP address canbe omitted.

If AP 202 receives this data frame 404, AP 202 can send an ACK frame 406to station 204, indicating that AP 202 received the data frame 404 sentby station 204. Accordingly, in step 606, if station 204 receives ACKframe 406, then in step 608, station 204 can count the ACK frame as aframe that can be included in the equation for throughput describedabove. After the ACK frame is counted, then the cycle can be repeatedbeginning at step 600.

However, if station 204 does not receive ACK frame 406 within aspecified period of time, then in step 610, station 204 can determinewhether the specified retry limit 504 (FIG. 5) has been reached. If theretry limit has not been reached, then in step 612, a retry can becounted against this limit. Then, step 604 can be repeated and dataframe 404 can be resent. In step 606, station 204 can determine if ACKframe 406 has been received within a specified period of time, asdescribed above.

Alternatively, if the specified retry limit 504 (FIG. 5) has beenreached, then in step 614, a frame loss can be counted and the cycle canbe repeated beginning at step 600.

The above-described cycle, as depicted in FIG. 6, can be repeatedthroughout the test period 500 (FIG. 5). At the end of the test period,the throughput results can be displayed to the user, administrator, orthe like, as shown in FIG. 5. More particularly, the number of ACKscounted in step 608 (FIG. 6) can be displayed as the number of packets508 received by AP 202. This number of packets 508 can be used tocalculate throughput in packets per second 510 by dividing the number ofpackets 508 by the test period 500. Furthermore, the number of packets508 can be multiplied by the frame size 502 to calculate the totalnumber of bytes 512 successfully transmitted from station 204 to AP 202during the test period 500. From this total number of bytes 512, alongwith the test period 500, throughput in kilobytes per second 514 can becalculated. In addition, the number of retries 516 counted in step 612(FIG. 6) during the test period 500 can be calculated. The number offrames lost 518, as counted in step 614 (FIG. 6) during the test period500, can also be calculated.

Although FIG. 5 depicts particular input parameters and displayparameters in an exemplary configuration, it should be recognized thatvarious input parameters and display parameters can be modified,omitted, or added, depending on the application. Furthermore, the inputparameters and display parameters can be configured in any manner,depending on the application. For instance, the transmission rate 520can be added as an input parameter. More particularly, a user,administrator, or the like can specify which IEEE 802.11 rate should beused to transmit data frames 404 over the WLAN, such as 1 mbps, 2 mbps,5.5 mbps, 11 mbps, and the like. Another example includes displaying thenumber of frames 404 fragmented 522 during the test period based on thespecified fragmentation threshold 506.

FIG. 8 depicts another exemplary system and process that can be used tomeasure throughput in a WLAN system. As depicted in FIG. 8, the presentembodiment includes second data frame 800 and ACK frame 802, and can beused to measure throughput from AP 202 to station 204.

More particularly, with reference to FIGS. 6 and 8, after the parametersfor throughput measurement are set (FIG. 5), the test period can bestarted. Next, in step 600, station 204 can send a RTS frame 400 to AP202. After AP 202 detects that the wireless medium is free from othertraffic that could interfere with a frame sent by station 204, then instep 602, AP 202 can send a CTS frame 402 to station 204. However, itshould be recognized that steps 600 and 602 can be omitted in someapplications. For instance, although sending CTS and RTS frames canreduce collisions between subeseqent data frames sent over a WLAN, CTSand RTS frames can be omitted if collisions are acceptable in aparticular application.

After station 204 receives CTS frame 402, then in step 604, station 204can send a first data frame 404 to AP 202. With reference again to FIG.7, data frame 404 can include an IEEE 802.11 header 700. IEEE 802.11header 700 can include destination address 704, BSSID 706, sourceaddress 708, and other information 710. In the present exemplaryembodiment, destination address 704 can be set to station 204, BSSID 706can be set to AP 202, and source address 708 can be set to station 204.By setting destination address 704 to station 204, first data frame 404can travel from station 204 to AP 202 and from AP 202 to station 204,thereby creating two-way traffic between station 204 and AP 202 that canbe more symmetric than the traffic created in the exemplary embodimentdescribed above with regard to FIGS. 4 and 6. This two-way traffic canaffect the throughput from station 204 to AP 202 and the throughput fromAP 202 to station 204 depending on factors such as the processingcapacity of station 204, the processing capacity of AP 202, bandwidth,and the like.

If AP 202 receives this first data frame 404, AP 202 can send an ACKframe 406 to station 204, indicating that AP 202 received the data frame404 sent by station 204. Next, in step 606, station 204 can determine ifit has received ACK frame 406 within a specified period of time. Ifstation 204 does receive ACK frame 406 within a specified period oftime, then in step 608, station 204 can count the ACK frame as a framethat can be included in the equation for throughput from station 204 toAP 202 described above with regard to FIGS. 4 and 6. After the ACK frameis counted, then the cycle can be repeated beginning at step 600.Although the present embodiment includes counting ACK frame 406, itshould be recognized that counting ACK frames can be omitted in someapplications. For instance, counting ACK frames can be omitted ifthroughput from station 204 to AP 202 is not measured.

If station 204 does not receive ACK frame 406 within a specified periodof time, then in step 610, station 204 can determine whether thespecified retry limit 504 (FIG. 5) has been reached. If the retry limithas not been reached, then in step 612, a retry can be counted againstthis limit. Then, step 604 can be repeated and first data frame 404 canbe resent. In step 606, station can determine if ACK frame 406 has beenreceived within a specified period of time, as described above.

Alternatively, if the specified retry limit 504 (FIG. 5) has beenreached, then in step 614, a frame loss can be counted and the cycle canbe repeated beginning at step 600.

As shown in FIG. 8, when AP 202 receives a first data frame 404 fromstation 204, AP 202 can then send first data frame 404 back to station204 as second data frame 800, based on the destination address 704 setin first data frame 404. If station 204 receives second data frame 800,station 204 can count the second data frame as a frame that can beincluded in the equation described above with regard to FIGS. 4 and 6 tocalculate throughput from AP 202 to station 204. In addition, station204 can send ACK frame 802 to AP 202 after receiving second data frame800, indicating that station 204 received second data frame 800.

The above-described cycle can be repeated throughout the test period 500(FIG. 5). At the end of the test period, the throughput results can bedisplayed to the user, administrator, or the like, as shown in FIG. 5.More particularly, the number of second data frames counted can bedisplayed as the number of packets 508 received by station 204. Thisnumber of packets 508 can be used to calculate throughput in packets persecond 510 by dividing the number of packets 508 by the test period 500.Furthermore, the number of packets 508 can be multiplied by the framesize 502 to calculate the total number of bytes 512 successfullytransmitted from AP 202 to station 204 during the test period 500. Fromthis total number of bytes 512, along with the test period 500,throughput in kilobytes per second 514 can be calculated. In addition,the number of retries 516 counted in step 612 (FIG. 6) during the testperiod 500 can be calculated. The number of frames lost 518, as countedin step 614 (FIG. 6) during the test period 500, can also be calculated.

Although FIG. 5 depicts particular input parameters and displayparameters in an exemplary configuration, it should be recognized thatvarious input parameters and display parameters can be modified,omitted, or added, depending on the application. For instance, thenumber of ACK frames 406 received by station 204 can also be displayed,as well as throughput from station 204 to AP 202. Furthermore, the inputparameters and display parameters can be configured in any manner,depending on the application.

Furthermore, with regard to the exemplary embodiments described above,the input parameters and display parameters, such as those shown in FIG.5, can be included in station 204. As described above, station 204 canbe mobile, portable, stationary, and the like. For instance, station 204can be a laptop computer, a personal digital assistant, and the like. Inaddition, station 204 can be used by a user as a diagnostic tool, by anadministrator as an administrative tool, and the like, to assess thequality of communications in the WLAN.

Calculating a transmission time or the throughput according to theexemplary embodiments described above provides advantages over using anecho request-reply mechanism that uses an OSI layer of layer 3 or above.In particular, by using the existing infrastructure provided by the IEEE802.11 medium access control (“MAC”) to calculate transmission time orthroughput across a WLAN, the components of the WLAN only need tosupport an OSI layer of layer 2, thereby circumventing variousdisadvantages of using an echo request reply mechanism that utilizeslayer 3 or above of the OSI model.

More particularly, in the present exemplary embodiment, AP 202 does notneed to be modified to run an application in order to allow station 204to calculate transmission times or throughput. In addition, the AP 202that connects station 204 to AP 202 does not need to support activitieson network layer 106 or on any higher layer of the OSI model.Furthermore, delay due to processing data at layer 3 or above can bereduced with the present exemplary embodiment by processing data atlayer 2 or below. Moreover, station 204 does not need to be configuredwith an echo reply-request mechanism that can be inconvenient oradministratively impractical to configure.

Additionally, the present exemplary embodiment reduces the need to use aseparate device that can support an OSI layer of layer 3 or above.Accordingly, the calculated throughput of the present exemplaryembodiment can be more accurate than calculations from a separate devicebecause the present exemplary embodiment does not include the extra pathlength between a separate device and AP 202, or any increased delays oreffects of bottlenecks due to including this extra path length.

The present invention also relates to apparatus for performing theoperations herein. This apparatus may be a computer to execute acomputer program stored in a computer readable storage medium.

Furthermore, the present exemplary embodiment provides an additionaladvantage of using the existing architecture of the IEEE 802.11standard. By using this existing architecture, throughput of the WLANcan be calculated conveniently with little expense. Additionally,because AP 202 is not modified according to the present exemplaryembodiment, station 204 can be used to calculate throughput of the WLANat various locations and using various APs 202.

Although the present invention has been described with respect tocertain embodiments, examples, and applications, it will be apparent tothose skilled in the art that various modifications and changes may bemade without departing from the invention.

1. A method of measuring the throughput of transmissions from a stationto an access point over a wireless local area network, the methodcomprising: sending messages from the station to the access point duringa test period, receiving acknowledgements at the station, wherein theacknowledgements are sent to the station from the access point for eachmessage received by the access point during the test period; anddetermining a throughput for the test period based on the number ofacknowledgements received at the station from the access point duringthe test period.
 2. The method of claim 1, wherein the messages are sentto the access point as data frames, and wherein the acknowledgements aresent to the station as control frames.
 3. The method of claim 1, whereinsending messages includes: sending a first message from the station tothe access point; determining if an acknowledgement for the firstmessage has been received at the station; resending the first message ifthe station fails to receive an acknowledgement from the access pointand if a retry limit has not been reached; counting a frame loss for thefirst message if the station fails to receive an acknowledgement for thefirst message from the access point and if a retry limit has beenreached; and sending a second message from the station to the accesspoint after receiving an acknowledgement at the station for the firstmessage or counting a frame loss for the first message.
 4. The method ofclaim 1, wherein determining a throughput for the test period furthercomprises: determining the throughput in bits per second based on thetest period, the number of acknowledgements received at the station fromthe access point during the test period, and a number of bits includedin each of the messages sent from the station to the access point duringthe test period.
 5. The method of claim 1, further comprising: sending arequest to send frame from the station to the access point beforesending each message; and receiving a clear to send frame at the stationfrom the access point before sending each message.
 6. The method ofclaim 1, further comprising: receiving messages at the station sent fromthe access point, wherein the access point sent the messages to thestation after receiving the messages from the station; and determining athroughput from the access point to the station for the test periodbased on the messages received by the station from the access pointduring the test period.
 7. The method of claim 6, wherein determining athroughput from the access point to the station for the test periodfurther comprises: determining the throughput in bits per second basedon the test period, the number of messages received at the station fromthe access point during the test period, and a number of bits includedin each of the messages sent from the station to the access point duringthe test period.
 8. A computer-readable storage medium containingcomputer executable code when executed by a computer, cause the computerto measure the throughput of transmission from a station to an accesspoint over a wireless local area network by instructing the computer tooperate as follows: sending messages from the station to the accesspoint during a test period, receiving acknowledgements at the station,wherein the acknowledgements are sent to the station from the accesspoint for each message received by the access point during the testperiod; and determining a throughput for the test period based on thenumber of acknowledgements received at the station from the access pointduring the test period.
 9. The computer-readable storage medium of claim8, wherein the messages are sent as data frames, and wherein theacknowledgements are sent to the station as control frames.
 10. Thecomputer-readable storage medium of claim 8, wherein sending messagesincludes: sending a first message from the station to the access point;determining if an acknowledgement for the first message has beenreceived at the station; and resending the first message if the stationfails to receive an acknowledgement from the access point and if a retrylimit has not been reached.
 11. The computer-readable storage medium ofclaim 10, further comprising: counting a frame loss for the firstmessage if the station fails to receive an acknowledgement for the firstmessage from the access point and if a retry limit has been reached; andsending a second message from the station to the access point afterreceiving an acknowledgement at the station for the first message orcounting a frame loss for the first message.
 12. The computer-readablestorage medium of claim 8, wherein determining a throughput for the testperiod further comprises: determining the throughput in bits per secondbased on the test period, the number of acknowledgements received at thestation from the access point during the test period, and a number ofbits included in each of the messages sent from the station to theaccess point during the test period.
 13. The computer-readable storagemedium of claim 8, further comprising: sending a request to send framefrom the station to the access point before sending each message; andreceiving a clear to send frame at the station from the access pointbefore sending each message.
 14. The computer-readable storage medium ofclaim 8, further comprising: receiving messages at the station from theaccess point, wherein the access point sends the messages to the stationafter receiving the messages from the station; and determining athroughput from the access point to the station for the test periodbased on the messages received by the station from the access pointduring the test period.
 15. The computer-readable storage medium ofclaim 14, wherein determining a throughput from the access point to thestation for the test period further comprises: determining thethroughput in bits per second based on the test period, the number ofmessages received at the station from the access point during the testperiod, and a number of bits included in each of the messages sent fromthe station to the access point during the test period.
 16. A system formeasuring the throughput of transmissions over a wireless local areanetwork, the system comprising: a station configured to: send messagesto the access point during a test period, receive acknowledgements fromthe access point during the test period; and determine a throughput forthe test period based on the acknowledgements received from the accesspoint during the test period.
 17. The system of claim 16, wherein themessages are sent as data frames, and wherein the acknowledgements aresent to the station as control frames.
 18. The system of claim 16,wherein the station is configured to send messages is configured to:send a first message from the station to the access point, determine ifan acknowledgement for the first message has been received at thestation, resend the first message if the station fails to receive anacknowledgement from the access point and if a retry limit has not beenreached, count a frame loss for the first message if the station failsto receive an acknowledgement for the first message from the accesspoint and if a retry limit has been reached; and send a second messagefrom the station to the access point after receiving an acknowledgementat the station for the first message or counting a frame loss for thefirst message.
 19. The system of claim 16, wherein the stationconfigured to determine a throughput for the test period is furtherconfigured to determine the throughput in bits per second based on thetest period, the number of acknowledgements received at the station fromthe access point during the test period, and a number of bits includedin each of the messages sent from the station to the access point duringthe test period.
 20. The system of claim 16, wherein the station isfurther configured to: receive messages at the station from the accesspoint, wherein the access point sends the messages to the station afterreceiving the messages from the station; and determine a throughput fromthe access point to the station for the test period based on themessages received by the station from the access point during the testperiod.